package top.minuy.structure.set;

import top.minuy.structure.tree.bst.BST;
/**
 * @author Minuy
 * @time 11:36
 * @date 2021/9/11
 */
public class BSTSet<E extends Comparable<E>> implements Set<E> {
    // 用于支持集合的二分搜索树
    BST<E> bst;

    /**
     * 创建一个集合
     */
    public BSTSet() {
        bst = new BST<>();
    }

    /**
     * 向集合中添加元素
     *
     * @param e 要添加的元素
     */
    @Override
    public void add(E e) {
        bst.addNr(e);
    }

    /**
     * 删除集合中的元素
     *
     * @param e 要被删除的元素
     */
    @Override
    public void remove(E e) {
        bst.remove(e);
    }

    /**
     * 判断集合中是否存在某一元素
     *
     * @param e 要判断是否存在的元素
     * @return 元素是否存在
     */
    @Override
    public boolean contains(E e) {
        return bst.contains(e);
    }

    /**
     * 获得集合元素中的个数
     *
     * @return 集合中元素的个数
     */
    @Override
    public int getSize() {
        return bst.size();
    }

    /**
     * 、
     * 判断集合是否为空
     *
     * @return 集合是否为空
     */
    @Override
    public boolean isEmpty() {
        return bst.isEmpty();
    }
}
